Refactoring and Aggregation
نویسندگان
چکیده
Object-oriented programs evolve by means other than just the addition of new classes. The changes to object-oriented programs that have been most studied are those based on inheritance, on reorganizing a class hierarchy. However, aggrega-tion is a relationship between classes that is just as important as inheritance, and many changes to an object-oriented design involve the aggregate/component relationship. This paper describes some common refactorings based on aggregation, including how to convert from inheritance to an aggregation, and how to reorganize an aggregate/component hierarchy just as one might reorganize a class inheritance hierarchy.
منابع مشابه
Making refactoring decisions in large-scale Java systems: an empirical stance
Decisions on which classes to refactor are fraught with difficulty. The problem of identifying candidate classes becomes acute when confronted with large systems comprising hundreds or thousands of classes. In this paper, we describe a metric by which key classes, and hence candidates for refactoring, can be identified. Measures quantifying the usage of two forms of coupling, inheritance and ag...
متن کاملAn empirical study on encapsulation and refactoring in the object-orientated paradigm
ion The concept of abstraction from the perspective of OO SE is a process that involves identifying only crucial aspects of a problem and ignoring the non-essential information and details. Abstract Class An abstract class is a class that can not be instantiated. It contains both attributes and methods, and serves as a base class from which other classes can be derived.Class An abstract class i...
متن کاملRouting and State Distribution Trade-Offs in SDN
Software Defined Networking (SDN) introduces programability into the network forwarding plane and simultaneously enables architectural refactoring of the routing control plane. In this work, we present two complementary studies leveraging the opportunities presented by SDN. First, in the context of internet router architectures in Section II, we propose leveraging OpenFlow forwarding informatio...
متن کاملThe Need for Object - Oriented Reengineering
insert() abstract delete() abstract lookup() abstract forall() HashSet ... ListSet ... Set impl insert() delete() lookup() forall() deleteAll() union() constructor() changeImpl() SetImpl abstract insert() abstract delete() abstract lookup() abstract forall() abstract changeImpl() constructor (type subtypeSetImpl) { impl = new type ; }insert() abstract delete() abstract lookup() abstract forall(...
متن کاملEffect of the Garlic Pill in comparison with Plavix on Platelet Aggregation and Bleeding Time
Abstract Introduction Platelet aggregation plays a significant role in the etiology of cardiovascular diseases. Therefore, treatments to inhibit platelet aggregation can reduce the risk of coronary thrombosis. Several studies indicated that garlic can inhibit platelet aggregation. This study aimed to determine the effect of garlic in comparison with Plavix on platelet aggregation. Materials ...
متن کامل